package com.turnengine.client.local.action.command.set;

import com.javabi.codebuilder.generated.IGeneratedCommandSet;
import com.turnengine.client.local.action.bean.IAction;
import com.turnengine.client.local.action.bean.IActionCondition;
import com.turnengine.client.local.action.bean.IActionTarget;
import com.turnengine.client.local.action.enums.ActionConditionExecute;
import com.turnengine.client.local.action.enums.ActionConditionMandatory;
import com.turnengine.client.local.action.enums.ActionConditionType;
import com.turnengine.client.local.action.enums.ActionTargetType;
import com.turnengine.client.local.unit.enums.UnitRelation;
import com.turnengine.client.local.unit.enums.UnitType;
import java.util.List;

/**
 * The I Local Action Command Set.
 */
public interface ILocalActionCommandSet extends IGeneratedCommandSet {

	IAction addAction(long loginId, int instanceId, int actionId, int turns, int limit);

	IActionTarget addActionTarget(long loginId, int instanceId, int actionId, ActionTargetType target, UnitType type, UnitRelation relation);

	IActionCondition addActionCondition(long loginId, int instanceId, int actionId, ActionTargetType targetType, ActionConditionType type, ActionConditionExecute execute, ActionConditionMandatory mandatory, int conditionId, long conditionAmount);

	List<IAction> getActionList(long loginId, int instanceId);

	List<IActionTarget> getActionTargetList(long loginId, int instanceId);

	List<IActionCondition> getActionConditionList(long loginId, int instanceId);

	Boolean startActionAtPlayer(long loginId, int instanceId, int id, long amount);
}
